Micron Document
Beleth Git Node

Node / public / rnpaste-cli / files / rnpaste.py

Displaying Raw • Download

rnpaste.py main (88f93ec1) Text, 23.83 KB

Tff7b72import T7ee787argparse
Tff7b72import T7ee787hashlib
Tff7b72import T7ee787json
Tff7b72import T7ee787os
Tff7b72import T7ee787time
Tff7b72import T7ee787sys
Tff7b72from T7ee787pathlib Tff7b72import Te6edf3Path
Tff7b72from T7ee787typing Tff7b72import Te6edf3AnyTb4b4b4, Te6edf3cast

Tff7b72import T7ee787msgpack

Te6edf3TTL_PRESETSTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Tffa657strTb4b4b4] Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffquickTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff1hTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffdayTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff1dTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffweekTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff7dTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffmonthTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff30dTa5d6ff"Tb4b4b4,
Tb4b4b4}

Te6edf3SERVICE_APP_NAME Tff7b72= Ta5d6ff"Ta5d6ffrnpastedTa5d6ff"
Te6edf3SERVICE_ASPECT Tff7b72= Ta5d6ff"Ta5d6ffserviceTa5d6ff"
Te6edf3SERVICE_REQUEST_PATH Tff7b72= Ta5d6ff"Ta5d6ffrnpastedTa5d6ff"


Tff7b72def Td2a8ff_statusTb4b4b4(Te6edf3messageTb4b4b4: Tffa657strTb4b4b4, Tff7b72*Tb4b4b4, Te6edf3enabledTb4b4b4: Tffa657bool Tff7b72= Tff7b72TrueTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72if Te6edf3enabledTb4b4b4:
Te6edf3sysTff7b72.Td2a8ffstderrTff7b72.Td2a8ffwriteTb4b4b4(Ta5d6fffTa5d6ff"Tffea00\rTffea00\033Ta5d6ff[KTffd700{Te6edf3messageTffd700}Ta5d6ff"Tb4b4b4)
Te6edf3sysTff7b72.Td2a8ffstderrTff7b72.Td2a8ffflushTb4b4b4(Tb4b4b4)


Tff7b72def Td2a8ff_status_doneTb4b4b4(Te6edf3messageTb4b4b4: Tffa657strTb4b4b4, Tff7b72*Tb4b4b4, Te6edf3enabledTb4b4b4: Tffa657bool Tff7b72= Tff7b72TrueTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72if Te6edf3enabledTb4b4b4:
Te6edf3sysTff7b72.Td2a8ffstderrTff7b72.Td2a8ffwriteTb4b4b4(Ta5d6fffTa5d6ff"Tffea00\rTffea00\033Ta5d6ff[KTffd700{Te6edf3messageTffd700}Tffea00\nTa5d6ff"Tb4b4b4)
Te6edf3sysTff7b72.Td2a8ffstderrTff7b72.Td2a8ffflushTb4b4b4(Tb4b4b4)


Tff7b72def Td2a8ff_read_contentTb4b4b4(Te6edf3file_argTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
Tff7b72if Te6edf3file_arg Tff7b72== Ta5d6ff"Ta5d6ff-Ta5d6ff"Tb4b4b4:
Tff7b72import T7ee787sys

Tff7b72return Te6edf3sysTff7b72.Td2a8ffstdinTff7b72.Td2a8ffreadTb4b4b4(Tb4b4b4)
Tff7b72return Te6edf3PathTb4b4b4(Te6edf3file_argTb4b4b4)Tff7b72.Td2a8ffread_textTb4b4b4(Te6edf3encodingTff7b72=Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)


Tff7b72def Td2a8ff_pack_requestTb4b4b4(Te6edf3dataTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4]Tb4b4b4) Tff7b72-Tff7b72> Tffa657bytesTb4b4b4:
Tff7b72return Te6edf3castTb4b4b4(Tffa657bytesTb4b4b4, Te6edf3msgpackTff7b72.Td2a8ffpackbTb4b4b4(Te6edf3dataTb4b4b4, Te6edf3use_bin_typeTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4)


Tff7b72def Td2a8ff_unpack_responseTb4b4b4(Te6edf3payloadTb4b4b4: Tffa657bytesTb4b4b4) Tff7b72-Tff7b72> Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4]Tb4b4b4:
Tff7b72return Te6edf3msgpackTff7b72.Td2a8ffunpackbTb4b4b4(Te6edf3payloadTb4b4b4, Te6edf3rawTff7b72=Tff7b72FalseTb4b4b4)


Tff7b72def Td2a8ff_parse_durationTb4b4b4(Te6edf3valueTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657intTb4b4b4:
Te6edf3normalized Tff7b72= Te6edf3valueTff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)Tff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Tff7b72if Tffa657lenTb4b4b4(Te6edf3normalizedTb4b4b4) Tff7b72< T79c0ff2Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffinvalid durationTa5d6ff"Tb4b4b4)
Te6edf3amount_partTb4b4b4, Te6edf3unit Tff7b72= Te6edf3normalizedTb4b4b4[Tb4b4b4:Tff7b72-T79c0ff1Tb4b4b4]Tb4b4b4, Te6edf3normalizedTb4b4b4[Tff7b72-T79c0ff1Tb4b4b4]
Tff7b72if Tff7b72not Te6edf3amount_partTff7b72.Td2a8ffisdigitTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffinvalid durationTa5d6ff"Tb4b4b4)
Te6edf3multiplier Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffsTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4,
Ta5d6ff"Ta5d6ffmTa5d6ff"Tb4b4b4: T79c0ff60Tb4b4b4,
Ta5d6ff"Ta5d6ffhTa5d6ff"Tb4b4b4: T79c0ff3600Tb4b4b4,
Ta5d6ff"Ta5d6ffdTa5d6ff"Tb4b4b4: T79c0ff86400Tb4b4b4,
Ta5d6ff"Ta5d6ffwTa5d6ff"Tb4b4b4: T79c0ff604800Tb4b4b4,
Tb4b4b4}Tff7b72.Td2a8ffgetTb4b4b4(Te6edf3unitTb4b4b4)
Tff7b72if Te6edf3multiplier Tff7b72is Tff7b72NoneTb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffinvalid durationTa5d6ff"Tb4b4b4)
Tff7b72return Tffa657intTb4b4b4(Te6edf3amount_partTb4b4b4) Tff7b72* Te6edf3multiplier


Tff7b72def Td2a8ff_require_rnsTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72import T7ee787RNS

Tff7b72return Te6edf3RNS


Tff7b72def Td2a8ff_ensure_reticulumTb4b4b4(Te6edf3config_dirTb4b4b4: Tffa657str Tff7b72| Tff7b72None Tff7b72= Tff7b72NoneTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Te6edf3RNS Tff7b72= Te6edf3_require_rnsTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffReticulumTff7b72.Td2a8ffget_instanceTb4b4b4(Tb4b4b4) Tff7b72is Tff7b72NoneTb4b4b4:
Tff7b72if Te6edf3config_dirTb4b4b4:
Te6edf3RNSTff7b72.Td2a8ffReticulumTb4b4b4(Te6edf3configdirTff7b72=Te6edf3config_dirTb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3RNSTff7b72.Td2a8ffReticulumTb4b4b4(Tb4b4b4)


Tff7b72def Td2a8ff_decode_destination_hashTb4b4b4(Te6edf3server_hashTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657bytesTb4b4b4:
Te6edf3normalized Tff7b72= Te6edf3server_hashTff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)Tff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3normalizedTff7b72.Td2a8ffstartswithTb4b4b4(Ta5d6ff"Ta5d6ff0xTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3normalized Tff7b72= Te6edf3normalizedTb4b4b4[T79c0ff2Tb4b4b4:Tb4b4b4]
Tff7b72tryTb4b4b4:
Te6edf3value Tff7b72= Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3normalizedTb4b4b4)
Tff7b72except Tf85149ValueError Tff7b72as Te6edf3excTb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffServer destination hash must be a hex stringTa5d6ff"Tb4b4b4) Tff7b72from T7ee787exc

Tff7b72if Tff7b72not Te6edf3valueTb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffServer destination hash cannot be emptyTa5d6ff"Tb4b4b4)
Tff7b72return Te6edf3value


Tff7b72def Td2a8ff_resolve_destinationTb4b4b4(
Te6edf3server_hashTb4b4b4: Tffa657strTb4b4b4,
Tff7b72*Tb4b4b4,
Te6edf3app_nameTb4b4b4: Tffa657strTb4b4b4,
Te6edf3aspectTb4b4b4: Tffa657strTb4b4b4,
Te6edf3timeoutTb4b4b4: Tffa657float Tff7b72| Tff7b72NoneTb4b4b4,
Tb4b4b4) Tff7b72-Tff7b72> Tffa657objectTb4b4b4:
Te6edf3RNS Tff7b72= Te6edf3_require_rnsTb4b4b4(Tb4b4b4)
Te6edf3destination_hash Tff7b72= Te6edf3_decode_destination_hashTb4b4b4(Te6edf3server_hashTb4b4b4)

Te6edf3path_requested_at Tff7b72= T79c0ff0.0
Te6edf3deadline Tff7b72= Tff7b72None Tff7b72if Te6edf3timeout Tff7b72is Tff7b72None Tff7b72else Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72+ Te6edf3timeout
Tff7b72while Te6edf3deadline Tff7b72is Tff7b72None Tff7b72or Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72< Te6edf3deadlineTb4b4b4:
Tff7b72if Tff7b72not Te6edf3RNSTff7b72.Td2a8ffTransportTff7b72.Td2a8ffhas_pathTb4b4b4(Te6edf3destination_hashTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72- Te6edf3path_requested_at Tff7b72>Tff7b72= T79c0ff2.0Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8ffTransportTff7b72.Td2a8ffrequest_pathTb4b4b4(Te6edf3destination_hashTb4b4b4)
Te6edf3path_requested_at Tff7b72= Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3identity Tff7b72= Te6edf3RNSTff7b72.Td2a8ffIdentityTff7b72.Td2a8ffrecallTb4b4b4(Te6edf3destination_hashTb4b4b4)
Tff7b72if Te6edf3identity Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Tff7b72return Te6edf3RNSTff7b72.Td2a8ffDestinationTb4b4b4(
Te6edf3identityTb4b4b4,
Te6edf3RNSTff7b72.Td2a8ffDestinationTff7b72.Td2a8ffOUTTb4b4b4,
Te6edf3RNSTff7b72.Td2a8ffDestinationTff7b72.Td2a8ffSINGLETb4b4b4,
Te6edf3app_nameTb4b4b4,
Te6edf3aspectTb4b4b4,
Tb4b4b4)
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0.1Tb4b4b4)

Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffTimed out resolving destination path and identityTa5d6ff"Tb4b4b4)


Tff7b72def Td2a8ff_establish_linkTb4b4b4(Te6edf3destinationTb4b4b4: Tffa657objectTb4b4b4, Te6edf3timeoutTb4b4b4: Tffa657floatTb4b4b4) Tff7b72-Tff7b72> Tffa657objectTb4b4b4:
Te6edf3RNS Tff7b72= Te6edf3_require_rnsTb4b4b4(Tb4b4b4)
Te6edf3link Tff7b72= Te6edf3RNSTff7b72.Td2a8ffLinkTb4b4b4(Te6edf3destinationTb4b4b4)
Te6edf3deadline Tff7b72= Tff7b72None Tff7b72if Te6edf3timeout Tff7b72is Tff7b72None Tff7b72else Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72+ Te6edf3timeout
Tff7b72while Te6edf3deadline Tff7b72is Tff7b72None Tff7b72or Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72< Te6edf3deadlineTb4b4b4:
Tff7b72if Te6edf3linkTff7b72.Td2a8ffstatus Tff7b72== Te6edf3RNSTff7b72.Td2a8ffLinkTff7b72.Td2a8ffACTIVETb4b4b4:
Tff7b72return Te6edf3link
Tff7b72if Te6edf3linkTff7b72.Td2a8ffstatus Tff7b72== Te6edf3RNSTff7b72.Td2a8ffLinkTff7b72.Td2a8ffCLOSEDTb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffLink closed before becoming activeTa5d6ff"Tb4b4b4)
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0.1Tb4b4b4)

Tff7b72tryTb4b4b4:
Te6edf3linkTff7b72.Td2a8ffteardownTb4b4b4(Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffTimed out establishing Reticulum linkTa5d6ff"Tb4b4b4)


Tff7b72def Td2a8ff_send_requestTb4b4b4(
Te6edf3server_hashTb4b4b4: Tffa657strTb4b4b4,
Te6edf3payloadTb4b4b4: Tffa657bytesTb4b4b4,
Tff7b72*Tb4b4b4,
Te6edf3app_nameTb4b4b4: Tffa657str Tff7b72= Te6edf3SERVICE_APP_NAMETb4b4b4,
Te6edf3aspectTb4b4b4: Tffa657str Tff7b72= Te6edf3SERVICE_ASPECTTb4b4b4,
Te6edf3request_pathTb4b4b4: Tffa657str Tff7b72= Te6edf3SERVICE_REQUEST_PATHTb4b4b4,
Te6edf3timeoutTb4b4b4: Tffa657float Tff7b72| Tff7b72None Tff7b72= Tff7b72NoneTb4b4b4,
Te6edf3reticulum_configTb4b4b4: Tffa657str Tff7b72| Tff7b72None Tff7b72= Tff7b72NoneTb4b4b4,
Te6edf3statusTb4b4b4: Te6edf3Any Tff7b72| Tff7b72None Tff7b72= Tff7b72NoneTb4b4b4,
Tb4b4b4) Tff7b72-Tff7b72> Tffa657bytesTb4b4b4:
Tff7b72def Td2a8ffemitTb4b4b4(Te6edf3messageTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72if Te6edf3status Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Te6edf3statusTb4b4b4(Te6edf3messageTb4b4b4)

Te6edf3link Tff7b72= Te6edf3_open_linkTb4b4b4(
Te6edf3server_hashTb4b4b4,
Te6edf3app_nameTff7b72=Te6edf3app_nameTb4b4b4,
Te6edf3aspectTff7b72=Te6edf3aspectTb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3timeoutTb4b4b4,
Te6edf3reticulum_configTff7b72=Te6edf3reticulum_configTb4b4b4,
Te6edf3statusTff7b72=Te6edf3emitTb4b4b4,
Tb4b4b4)
Tff7b72tryTb4b4b4:
Tff7b72return Te6edf3_send_request_over_linkTb4b4b4(
Te6edf3linkTb4b4b4,
Te6edf3payloadTb4b4b4,
Te6edf3request_pathTff7b72=Te6edf3request_pathTb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3timeoutTb4b4b4,
Te6edf3statusTff7b72=Te6edf3emitTb4b4b4,
Tb4b4b4)
Tff7b72finallyTb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3linkTff7b72.Td2a8ffteardownTb4b4b4(Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass


Tff7b72def Td2a8ff_open_linkTb4b4b4(
Te6edf3server_hashTb4b4b4: Tffa657strTb4b4b4,
Tff7b72*Tb4b4b4,
Te6edf3app_nameTb4b4b4: Tffa657strTb4b4b4,
Te6edf3aspectTb4b4b4: Tffa657strTb4b4b4,
Te6edf3timeoutTb4b4b4: Tffa657float Tff7b72| Tff7b72NoneTb4b4b4,
Te6edf3reticulum_configTb4b4b4: Tffa657str Tff7b72| Tff7b72NoneTb4b4b4,
Te6edf3statusTb4b4b4: Te6edf3Any Tff7b72| Tff7b72None Tff7b72= Tff7b72NoneTb4b4b4,
Tb4b4b4) Tff7b72-Tff7b72> Tffa657objectTb4b4b4:
Te6edf3_ensure_reticulumTb4b4b4(Te6edf3reticulum_configTb4b4b4)

Tff7b72def Td2a8ffemitTb4b4b4(Te6edf3messageTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72if Te6edf3status Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Te6edf3statusTb4b4b4(Te6edf3messageTb4b4b4)

Te6edf3emitTb4b4b4(Ta5d6ff"Ta5d6ffResolving destination...Ta5d6ff"Tb4b4b4)
Te6edf3destination Tff7b72= Te6edf3_resolve_destinationTb4b4b4(
Te6edf3server_hashTb4b4b4,
Te6edf3app_nameTff7b72=Te6edf3app_nameTb4b4b4,
Te6edf3aspectTff7b72=Te6edf3aspectTb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3timeoutTb4b4b4,
Tb4b4b4)

Te6edf3emitTb4b4b4(Ta5d6ff"Ta5d6ffEstablishing link...Ta5d6ff"Tb4b4b4)
Tff7b72return Te6edf3_establish_linkTb4b4b4(Te6edf3destinationTb4b4b4, Te6edf3timeoutTff7b72=Te6edf3timeoutTb4b4b4)


Tff7b72def Td2a8ff_send_request_over_linkTb4b4b4(
Te6edf3linkTb4b4b4: Tffa657objectTb4b4b4,
Te6edf3payloadTb4b4b4: Tffa657bytesTb4b4b4,
Tff7b72*Tb4b4b4,
Te6edf3request_pathTb4b4b4: Tffa657strTb4b4b4,
Te6edf3timeoutTb4b4b4: Tffa657float Tff7b72| Tff7b72NoneTb4b4b4,
Te6edf3statusTb4b4b4: Te6edf3Any Tff7b72| Tff7b72None Tff7b72= Tff7b72NoneTb4b4b4,
Tb4b4b4) Tff7b72-Tff7b72> Tffa657bytesTb4b4b4:
Te6edf3RNS Tff7b72= Te6edf3_require_rnsTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffemitTb4b4b4(Te6edf3messageTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72if Te6edf3status Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Te6edf3statusTb4b4b4(Te6edf3messageTb4b4b4)

Te6edf3emitTb4b4b4(Ta5d6ff"Ta5d6ffSending request...Ta5d6ff"Tb4b4b4)
Te6edf3receipt Tff7b72= Te6edf3linkTff7b72.Td2a8ffrequestTb4b4b4(Te6edf3request_pathTb4b4b4, Te6edf3dataTff7b72=Te6edf3payloadTb4b4b4, Te6edf3timeoutTff7b72=Te6edf3timeoutTb4b4b4)
Tff7b72if Te6edf3receipt Tff7b72is Tff7b72FalseTb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffRequest could not be sentTa5d6ff"Tb4b4b4)

Te6edf3emitTb4b4b4(Ta5d6ff"Ta5d6ffWaiting for response...Ta5d6ff"Tb4b4b4)
Te6edf3deadline Tff7b72= Tff7b72None Tff7b72if Te6edf3timeout Tff7b72is Tff7b72None Tff7b72else Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72+ Te6edf3timeout
Tff7b72while Te6edf3deadline Tff7b72is Tff7b72None Tff7b72or Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72< Te6edf3deadlineTb4b4b4:
Tff7b72if Te6edf3receiptTff7b72.Td2a8ffstatus Tff7b72== Te6edf3RNSTff7b72.Td2a8ffRequestReceiptTff7b72.Td2a8ffREADYTb4b4b4:
Te6edf3response Tff7b72= Te6edf3receiptTff7b72.Td2a8ffresponse
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3responseTb4b4b4, Tffa657bytesTb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3response
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3responseTb4b4b4, Tffa657bytearrayTb4b4b4)Tb4b4b4:
Tff7b72return Tffa657bytesTb4b4b4(Te6edf3responseTb4b4b4)
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffUnexpected response payload typeTa5d6ff"Tb4b4b4)

Tff7b72if Te6edf3receiptTff7b72.Td2a8ffstatus Tff7b72== Te6edf3RNSTff7b72.Td2a8ffRequestReceiptTff7b72.Td2a8ffFAILEDTb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffRequest failed or timed outTa5d6ff"Tb4b4b4)

Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0.05Tb4b4b4)

Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffTimed out waiting for responseTa5d6ff"Tb4b4b4)


Tff7b72def Td2a8ff_resolve_submit_languageTb4b4b4(Te6edf3file_argTb4b4b4: Tffa657strTb4b4b4, Te6edf3language_argTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
Te6edf3explicit Tff7b72= Te6edf3language_argTff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3explicitTb4b4b4:
Tff7b72return Te6edf3explicit

Tff7b72if Te6edf3file_arg Tff7b72== Ta5d6ff"Ta5d6ff-Ta5d6ff"Tb4b4b4:
Tff7b72return Ta5d6ff"Ta5d6fftextTa5d6ff"

Tff7b72tryTb4b4b4:
Tff7b72from T7ee787pygmentsT7ee787.T7ee787lexers Tff7b72import Te6edf3get_lexer_for_filename
Tff7b72from T7ee787pygmentsT7ee787.T7ee787util Tff7b72import Te6edf3ClassNotFound

Tff7b72tryTb4b4b4:
Te6edf3lexer Tff7b72= Te6edf3get_lexer_for_filenameTb4b4b4(Te6edf3PathTb4b4b4(Te6edf3file_argTb4b4b4)Tff7b72.Td2a8ffnameTb4b4b4)
Tff7b72except Te6edf3ClassNotFoundTb4b4b4:
Te6edf3lexer Tff7b72= Tff7b72None

Tff7b72if Te6edf3lexer Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Te6edf3aliases Tff7b72= Tffa657listTb4b4b4(Tffa657getattrTb4b4b4(Te6edf3lexerTb4b4b4, Ta5d6ff"Ta5d6ffaliasesTa5d6ff"Tb4b4b4, Tb4b4b4[Tb4b4b4]Tb4b4b4)Tb4b4b4)
Tff7b72if Te6edf3aliasesTb4b4b4:
Tff7b72return Tffa657strTb4b4b4(Te6edf3aliasesTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)Tff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6fftextTa5d6ff"
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass

Te6edf3suffix Tff7b72= Te6edf3PathTb4b4b4(Te6edf3file_argTb4b4b4)Tff7b72.Td2a8ffsuffixTff7b72.Td2a8fflstripTb4b4b4(Ta5d6ff"Ta5d6ff.Ta5d6ff"Tb4b4b4)Tff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)Tff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Tff7b72return Te6edf3suffix Tff7b72or Ta5d6ff"Ta5d6fftextTa5d6ff"


Tff7b72def Td2a8ff_render_contentTb4b4b4(Te6edf3contentTb4b4b4: Tffa657strTb4b4b4, Te6edf3languageTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
Tff7b72if Tff7b72not Te6edf3sysTff7b72.Td2a8ffstdoutTff7b72.Td2a8ffisattyTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3content

Te6edf3language_name Tff7b72= Te6edf3languageTff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)Tff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3language_name Tff7b72or Te6edf3language_name Tff7b72== Ta5d6ff"Ta5d6fftextTa5d6ff"Tb4b4b4:
Tff7b72return Te6edf3content

Tff7b72tryTb4b4b4:
Tff7b72from T7ee787pygments Tff7b72import Te6edf3highlight
Tff7b72from T7ee787pygmentsT7ee787.T7ee787formatters Tff7b72import Te6edf3TerminalFormatter
Tff7b72from T7ee787pygmentsT7ee787.T7ee787lexers Tff7b72import Te6edf3get_lexer_by_name
Tff7b72from T7ee787pygmentsT7ee787.T7ee787util Tff7b72import Te6edf3ClassNotFound

Tff7b72tryTb4b4b4:
Te6edf3lexer Tff7b72= Te6edf3get_lexer_by_nameTb4b4b4(Te6edf3language_nameTb4b4b4)
Tff7b72except Te6edf3ClassNotFoundTb4b4b4:
Tff7b72return Te6edf3content

Tff7b72return Te6edf3highlightTb4b4b4(Te6edf3contentTb4b4b4, Te6edf3lexerTb4b4b4, Te6edf3TerminalFormatterTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72return Te6edf3content


Tff7b72def Td2a8ff_submit_stamp_message_idTb4b4b4(Te6edf3submit_requestTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4]Tb4b4b4) Tff7b72-Tff7b72> Tffa657bytesTb4b4b4:
Te6edf3payload Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffopTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffsubmitTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffauthorTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffauthorTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6fflanguageTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6fflanguageTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffvisibilityTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffvisibilityTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ffpublicTa5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffpinnedTa5d6ff"Tb4b4b4: Tffa657boolTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffpinnedTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffcontentTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffcontentTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4}
Tff7b72return Te6edf3hashlibTff7b72.Td2a8ffsha256Tb4b4b4(Te6edf3msgpackTff7b72.Td2a8ffpackbTb4b4b4(Te6edf3payloadTb4b4b4, Te6edf3use_bin_typeTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4)Tff7b72.Td2a8ffdigestTb4b4b4(Tb4b4b4)


Tff7b72def Td2a8ff_submit_signing_messageTb4b4b4(Te6edf3submit_requestTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4]Tb4b4b4) Tff7b72-Tff7b72> Tffa657bytesTb4b4b4:
Te6edf3payload Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffopTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffsubmitTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffauthorTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffauthorTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6fflanguageTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6fflanguageTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffvisibilityTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffvisibilityTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ffpublicTa5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffpinnedTa5d6ff"Tb4b4b4: Tffa657boolTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffpinnedTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffexpires_inTa5d6ff"Tb4b4b4: Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffexpires_inTa5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffcontentTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffcontentTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4}
Tff7b72return Te6edf3castTb4b4b4(Tffa657bytesTb4b4b4, Te6edf3msgpackTff7b72.Td2a8ffpackbTb4b4b4(Te6edf3payloadTb4b4b4, Te6edf3use_bin_typeTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4)


Tff7b72def Td2a8ff_admin_delete_signing_messageTb4b4b4(Te6edf3delete_requestTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4]Tb4b4b4) Tff7b72-Tff7b72> Tffa657bytesTb4b4b4:
Te6edf3payload Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffopTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffadmin_deleteTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3delete_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)Tff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4}
Tff7b72return Te6edf3castTb4b4b4(Tffa657bytesTb4b4b4, Te6edf3msgpackTff7b72.Td2a8ffpackbTb4b4b4(Te6edf3payloadTb4b4b4, Te6edf3use_bin_typeTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4)


Tff7b72def Td2a8ff_sign_submit_requestTb4b4b4(Te6edf3submit_requestTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4]Tb4b4b4, Tff7b72*Tb4b4b4, Te6edf3identity_pathTb4b4b4: Te6edf3PathTb4b4b4) Tff7b72-Tff7b72> Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Tffa657strTb4b4b4]Tb4b4b4:
Te6edf3RNS Tff7b72= Te6edf3_require_rnsTb4b4b4(Tb4b4b4)
Te6edf3identity Tff7b72= Te6edf3RNSTff7b72.Td2a8ffIdentityTff7b72.Td2a8fffrom_fileTb4b4b4(Tffa657strTb4b4b4(Te6edf3identity_pathTb4b4b4)Tb4b4b4)
Tff7b72if Te6edf3identity Tff7b72is Tff7b72NoneTb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffCould not load identity from Tffd700{Te6edf3identity_pathTffd700}Ta5d6ff"Tb4b4b4)

Te6edf3signature Tff7b72= Te6edf3identityTff7b72.Td2a8ffsignTb4b4b4(Te6edf3_submit_signing_messageTb4b4b4(Te6edf3submit_requestTb4b4b4)Tb4b4b4)
Te6edf3public_key Tff7b72= Te6edf3identityTff7b72.Td2a8ffget_public_keyTb4b4b4(Tb4b4b4)

Tff7b72if Tff7b72not Tffa657isinstanceTb4b4b4(Te6edf3signatureTb4b4b4, Tb4b4b4(Tffa657bytesTb4b4b4, Tffa657bytearrayTb4b4b4)Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffIdentity sign() did not return bytesTa5d6ff"Tb4b4b4)
Tff7b72if Tff7b72not Tffa657isinstanceTb4b4b4(Te6edf3public_keyTb4b4b4, Tb4b4b4(Tffa657bytesTb4b4b4, Tffa657bytearrayTb4b4b4)Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffIdentity get_public_key() did not return bytesTa5d6ff"Tb4b4b4)

Tff7b72return Tb4b4b4{
Ta5d6ff"Ta5d6ffsigner_idTa5d6ff"Tb4b4b4: Te6edf3identityTff7b72.Td2a8ffhashTff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffsigner_pubkeyTa5d6ff"Tb4b4b4: Tffa657bytesTb4b4b4(Te6edf3public_keyTb4b4b4)Tff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffsigner_sigTa5d6ff"Tb4b4b4: Tffa657bytesTb4b4b4(Te6edf3signatureTb4b4b4)Tff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4}


Tff7b72def Td2a8ff_sign_admin_delete_requestTb4b4b4(
Te6edf3delete_requestTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4]Tb4b4b4,
Tff7b72*Tb4b4b4,
Te6edf3identity_pathTb4b4b4: Te6edf3PathTb4b4b4,
Tb4b4b4) Tff7b72-Tff7b72> Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Tffa657strTb4b4b4]Tb4b4b4:
Te6edf3RNS Tff7b72= Te6edf3_require_rnsTb4b4b4(Tb4b4b4)
Te6edf3identity Tff7b72= Te6edf3RNSTff7b72.Td2a8ffIdentityTff7b72.Td2a8fffrom_fileTb4b4b4(Tffa657strTb4b4b4(Te6edf3identity_pathTb4b4b4)Tb4b4b4)
Tff7b72if Te6edf3identity Tff7b72is Tff7b72NoneTb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffCould not load identity from Tffd700{Te6edf3identity_pathTffd700}Ta5d6ff"Tb4b4b4)

Te6edf3signature Tff7b72= Te6edf3identityTff7b72.Td2a8ffsignTb4b4b4(Te6edf3_admin_delete_signing_messageTb4b4b4(Te6edf3delete_requestTb4b4b4)Tb4b4b4)
Te6edf3public_key Tff7b72= Te6edf3identityTff7b72.Td2a8ffget_public_keyTb4b4b4(Tb4b4b4)

Tff7b72if Tff7b72not Tffa657isinstanceTb4b4b4(Te6edf3signatureTb4b4b4, Tb4b4b4(Tffa657bytesTb4b4b4, Tffa657bytearrayTb4b4b4)Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffIdentity sign() did not return bytesTa5d6ff"Tb4b4b4)
Tff7b72if Tff7b72not Tffa657isinstanceTb4b4b4(Te6edf3public_keyTb4b4b4, Tb4b4b4(Tffa657bytesTb4b4b4, Tffa657bytearrayTb4b4b4)Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffIdentity get_public_key() did not return bytesTa5d6ff"Tb4b4b4)

Tff7b72return Tb4b4b4{
Ta5d6ff"Ta5d6ffsigner_idTa5d6ff"Tb4b4b4: Te6edf3identityTff7b72.Td2a8ffhashTff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffsigner_pubkeyTa5d6ff"Tb4b4b4: Tffa657bytesTb4b4b4(Te6edf3public_keyTb4b4b4)Tff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffsigner_sigTa5d6ff"Tb4b4b4: Tffa657bytesTb4b4b4(Te6edf3signatureTb4b4b4)Tff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4}


Tff7b72def Td2a8ff_generate_submit_stamp_hexTb4b4b4(Te6edf3submit_requestTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4]Tb4b4b4, Te6edf3stamp_costTb4b4b4: Tffa657intTb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72from T7ee787LXMF Tff7b72import Te6edf3LXStamper
Tff7b72except Tf85149Exception Tff7b72as Te6edf3excTb4b4b4: T8b949e# pragma: no cover
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffLXMF is not installedTa5d6ff"Tb4b4b4) Tff7b72from T7ee787exc

Te6edf3message_id Tff7b72= Te6edf3_submit_stamp_message_idTb4b4b4(Te6edf3submit_requestTb4b4b4)
Te6edf3stampTb4b4b4, Te6edf3_value Tff7b72= Te6edf3LXStamperTff7b72.Td2a8ffgenerate_stampTb4b4b4(Te6edf3message_idTb4b4b4, Te6edf3stamp_costTff7b72=Tffa657intTb4b4b4(Te6edf3stamp_costTb4b4b4)Tb4b4b4)
Tff7b72if Tff7b72not Tffa657isinstanceTb4b4b4(Te6edf3stampTb4b4b4, Tb4b4b4(Tffa657bytesTb4b4b4, Tffa657bytearrayTb4b4b4)Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffCould not generate LXMF stampTa5d6ff"Tb4b4b4)
Tff7b72return Tffa657bytesTb4b4b4(Te6edf3stampTb4b4b4)Tff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)


Tff7b72def Td2a8ff_discover_server_stamp_costTb4b4b4(
Te6edf3argsTb4b4b4: Te6edf3argparseTff7b72.Td2a8ffNamespaceTb4b4b4,
Tff7b72*Tb4b4b4,
Te6edf3linkTb4b4b4: Tffa657objectTb4b4b4,
Tb4b4b4) Tff7b72-Tff7b72> Tffa657int Tff7b72| Tff7b72NoneTb4b4b4:
Te6edf3info_request Tff7b72= Tb4b4b4{Ta5d6ff"Ta5d6ffversionTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4, Ta5d6ff"Ta5d6ffopTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffinfoTa5d6ff"Tb4b4b4}
Tff7b72tryTb4b4b4:
Te6edf3_statusTb4b4b4(Ta5d6ff"Ta5d6ffChecking server stamp cost...Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Te6edf3response Tff7b72= Te6edf3_unpack_responseTb4b4b4(
Te6edf3_send_request_over_linkTb4b4b4(
Te6edf3linkTb4b4b4,
Te6edf3_pack_requestTb4b4b4(Te6edf3info_requestTb4b4b4)Tb4b4b4,
Te6edf3request_pathTff7b72=Te6edf3SERVICE_REQUEST_PATHTb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3argsTff7b72.Td2a8fftimeoutTb4b4b4,
Te6edf3statusTff7b72=Tff7b72lambda Te6edf3messageTb4b4b4: Te6edf3_statusTb4b4b4(Te6edf3messageTb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6ff"Ta5d6ffError: stamp_cost_discovery_failedTa5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return Tff7b72None

Tff7b72if Tff7b72not Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffokTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6ff"Ta5d6ffError: stamp_cost_discovery_failedTa5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return Tff7b72None

Te6edf3raw_cost Tff7b72= Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffsubmission_stamp_costTa5d6ff"Tb4b4b4, T79c0ff0Tb4b4b4)
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3raw_costTb4b4b4, Tffa657boolTb4b4b4)Tb4b4b4:
Tff7b72return Tffa657intTb4b4b4(Te6edf3raw_costTb4b4b4)
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3raw_costTb4b4b4, Tffa657intTb4b4b4)Tb4b4b4:
Tff7b72return Tffa657maxTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3raw_costTb4b4b4)
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3raw_costTb4b4b4, Tffa657floatTb4b4b4)Tb4b4b4:
Tff7b72return Tffa657maxTb4b4b4(T79c0ff0Tb4b4b4, Tffa657intTb4b4b4(Te6edf3raw_costTb4b4b4)Tb4b4b4)
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3raw_costTb4b4b4, Tffa657strTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72return Tffa657maxTb4b4b4(T79c0ff0Tb4b4b4, Tffa657intTb4b4b4(Te6edf3raw_costTff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4)
Tff7b72except Tf85149ValueErrorTb4b4b4:
Tff7b72return T79c0ff0
Tff7b72return T79c0ff0


Tff7b72def Td2a8ff_submitTb4b4b4(Te6edf3argsTb4b4b4: Te6edf3argparseTff7b72.Td2a8ffNamespaceTb4b4b4) Tff7b72-Tff7b72> Tffa657intTb4b4b4:
Te6edf3_statusTb4b4b4(Ta5d6ff"Ta5d6ffPreparing submit request...Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Te6edf3expires_arg Tff7b72= Te6edf3argsTff7b72.Td2a8ffexpires
Tff7b72if Tff7b72not Te6edf3expires_arg Tff7b72and Te6edf3argsTff7b72.Td2a8ffttlTb4b4b4:
Te6edf3expires_arg Tff7b72= Te6edf3TTL_PRESETSTff7b72.Td2a8ffgetTb4b4b4(Te6edf3argsTff7b72.Td2a8ffttlTb4b4b4, Te6edf3argsTff7b72.Td2a8ffttlTb4b4b4)

Te6edf3expires_in Tff7b72= Te6edf3_parse_durationTb4b4b4(Te6edf3expires_argTb4b4b4) Tff7b72if Te6edf3expires_arg Tff7b72else Tff7b72None
Te6edf3language Tff7b72= Te6edf3_resolve_submit_languageTb4b4b4(Te6edf3argsTff7b72.Td2a8fffileTb4b4b4, Te6edf3argsTff7b72.Td2a8fflanguageTb4b4b4)
Te6edf3request Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffversionTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4,
Ta5d6ff"Ta5d6ffopTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffsubmitTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4: Te6edf3argsTff7b72.Td2a8fftitleTb4b4b4,
Ta5d6ff"Ta5d6ffauthorTa5d6ff"Tb4b4b4: Te6edf3argsTff7b72.Td2a8ffauthorTb4b4b4,
Ta5d6ff"Ta5d6fflanguageTa5d6ff"Tb4b4b4: Te6edf3languageTb4b4b4,
Ta5d6ff"Ta5d6ffvisibilityTa5d6ff"Tb4b4b4: Te6edf3argsTff7b72.Td2a8ffvisibilityTb4b4b4,
Ta5d6ff"Ta5d6ffexpires_inTa5d6ff"Tb4b4b4: Te6edf3expires_inTb4b4b4,
Ta5d6ff"Ta5d6ffpinnedTa5d6ff"Tb4b4b4: Tffa657boolTb4b4b4(Te6edf3argsTff7b72.Td2a8ffpinTb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffproof_stampTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcontent_encodingTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcontentTa5d6ff"Tb4b4b4: Te6edf3_read_contentTb4b4b4(Te6edf3argsTff7b72.Td2a8fffileTb4b4b4)Tb4b4b4,
Tb4b4b4}

Tff7b72if Tffa657boolTb4b4b4(Te6edf3argsTff7b72.Td2a8ffsignTb4b4b4)Tb4b4b4:
Te6edf3identity_path Tff7b72= Te6edf3PathTb4b4b4(Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffexpanduserTb4b4b4(Tffa657strTb4b4b4(Te6edf3argsTff7b72.Td2a8ffidentityTb4b4b4)Tb4b4b4)Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3identity_pathTff7b72.Td2a8ffexistsTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError: identity_not_found: Tffd700{Te6edf3identity_pathTffd700}Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff1
Tff7b72tryTb4b4b4:
Te6edf3requestTff7b72.Td2a8ffupdateTb4b4b4(Te6edf3_sign_submit_requestTb4b4b4(Te6edf3requestTb4b4b4, Te6edf3identity_pathTff7b72=Te6edf3identity_pathTb4b4b4)Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3excTb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError: sign_failed: Tffd700{Te6edf3excTffd700}Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff1

Tff7b72tryTb4b4b4:
Te6edf3link Tff7b72= Te6edf3_open_linkTb4b4b4(
Te6edf3argsTff7b72.Td2a8ffserverTb4b4b4,
Te6edf3app_nameTff7b72=Te6edf3SERVICE_APP_NAMETb4b4b4,
Te6edf3aspectTff7b72=Te6edf3SERVICE_ASPECTTb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3argsTff7b72.Td2a8fftimeoutTb4b4b4,
Te6edf3reticulum_configTff7b72=Te6edf3argsTff7b72.Td2a8ffreticulum_configTb4b4b4,
Te6edf3statusTff7b72=Tff7b72lambda Te6edf3messageTb4b4b4: Te6edf3_statusTb4b4b4(Te6edf3messageTb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72tryTb4b4b4:
Te6edf3stamp_cost Tff7b72= T79c0ff0
Tff7b72if Tff7b72not Te6edf3requestTb4b4b4[Ta5d6ff"Ta5d6ffproof_stampTa5d6ff"Tb4b4b4]Tb4b4b4:
Te6edf3discovered Tff7b72= Te6edf3_discover_server_stamp_costTb4b4b4(Te6edf3argsTb4b4b4, Te6edf3linkTff7b72=Te6edf3linkTb4b4b4)
Tff7b72if Te6edf3discovered Tff7b72is Tff7b72NoneTb4b4b4:
Te6edf3_status_doneTb4b4b4(
Ta5d6ff"Ta5d6ffError: stamp_cost_discovery_failed: could not query server infoTa5d6ff"Tb4b4b4,
Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4,
Tb4b4b4)
Tff7b72return T79c0ff1
Te6edf3stamp_cost Tff7b72= Te6edf3discovered

Tff7b72if Te6edf3stamp_cost Tff7b72> T79c0ff0 Tff7b72and Tff7b72not Te6edf3requestTb4b4b4[Ta5d6ff"Ta5d6ffproof_stampTa5d6ff"Tb4b4b4]Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3_statusTb4b4b4(Ta5d6ff"Ta5d6ffGenerating LXMF proof stamp...Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Te6edf3requestTb4b4b4[Ta5d6ff"Ta5d6ffproof_stampTa5d6ff"Tb4b4b4] Tff7b72= Te6edf3_generate_submit_stamp_hexTb4b4b4(
Te6edf3requestTb4b4b4, Te6edf3stamp_costTff7b72=Te6edf3stamp_cost
Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3excTb4b4b4:
Te6edf3_status_doneTb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ffError: stamp_generation_failed: Tffd700{Te6edf3excTffd700}Ta5d6ff"Tb4b4b4,
Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4,
Tb4b4b4)
Tff7b72return T79c0ff1

Te6edf3_statusTb4b4b4(Ta5d6ff"Ta5d6ffSending submit request...Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Te6edf3payload Tff7b72= Te6edf3_pack_requestTb4b4b4(Te6edf3requestTb4b4b4)
Te6edf3response Tff7b72= Te6edf3_unpack_responseTb4b4b4(
Te6edf3_send_request_over_linkTb4b4b4(
Te6edf3linkTb4b4b4,
Te6edf3payloadTb4b4b4,
Te6edf3request_pathTff7b72=Te6edf3SERVICE_REQUEST_PATHTb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3argsTff7b72.Td2a8fftimeoutTb4b4b4,
Te6edf3statusTff7b72=Tff7b72lambda Te6edf3messageTb4b4b4: Te6edf3_statusTb4b4b4(Te6edf3messageTb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4)
Tff7b72finallyTb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3linkTff7b72.Td2a8ffteardownTb4b4b4(Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass
Tff7b72except Tf85149Exception Tff7b72as Te6edf3excTb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError: transport_error: Tffd700{Te6edf3excTffd700}Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff1

Tff7b72if Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4:
Tffa657printTb4b4b4(Te6edf3jsonTff7b72.Td2a8ffdumpsTb4b4b4(Te6edf3responseTb4b4b4, Te6edf3indentTff7b72=T79c0ff2Tb4b4b4, Te6edf3sort_keysTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4)
Tff7b72return T79c0ff0

Tff7b72if Tff7b72not Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffokTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3_status_doneTb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ffError: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6fferrorTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffmessageTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff"Tb4b4b4,
Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4,
Tb4b4b4)
Tff7b72return T79c0ff1

Te6edf3_status_doneTb4b4b4(Ta5d6ff"Ta5d6ffPaste created.Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tffa657printTb4b4b4(Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffID: Tffd700{Te6edf3responseTb4b4b4[Ta5d6ff'Ta5d6ffidTa5d6ff'Tb4b4b4]Tffd700}Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffPage: Tffd700{Te6edf3responseTb4b4b4[Ta5d6ff'Ta5d6ffpageTa5d6ff'Tb4b4b4]Tffd700}Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffRaw: Tffd700{Te6edf3responseTb4b4b4[Ta5d6ff'Ta5d6ffrawTa5d6ff'Tb4b4b4]Tffd700}Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffExpires: Tffd700{Te6edf3responseTb4b4b4[Ta5d6ff'Ta5d6ffexpires_atTa5d6ff'Tb4b4b4]Tffd700}Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffSigned: Tffd700{Ta5d6ff'Ta5d6ffyesTa5d6ff' Tff7b72if Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffsignedTa5d6ff'Tb4b4b4) Tff7b72else Ta5d6ff'Ta5d6ffnoTa5d6ff'Tffd700}Ta5d6ff"Tb4b4b4)
Tff7b72if Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffsigner_idTa5d6ff"Tb4b4b4)Tb4b4b4:
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffSigner ID: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffsigner_idTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffDelete token: Tffd700{Te6edf3responseTb4b4b4[Ta5d6ff'Ta5d6ffdelete_tokenTa5d6ff'Tb4b4b4]Tffd700}Ta5d6ff"Tb4b4b4)
Tff7b72return T79c0ff0


Tff7b72def Td2a8ff_getTb4b4b4(Te6edf3argsTb4b4b4: Te6edf3argparseTff7b72.Td2a8ffNamespaceTb4b4b4) Tff7b72-Tff7b72> Tffa657intTb4b4b4:
Te6edf3request Tff7b72= Tb4b4b4{Ta5d6ff"Ta5d6ffversionTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4, Ta5d6ff"Ta5d6ffopTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffgetTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4: Te6edf3argsTff7b72.Td2a8ffpaste_idTb4b4b4}
Tff7b72tryTb4b4b4:
Te6edf3_statusTb4b4b4(Ta5d6ff"Ta5d6ffSending get request...Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Te6edf3response Tff7b72= Te6edf3_unpack_responseTb4b4b4(
Te6edf3_send_requestTb4b4b4(
Te6edf3argsTff7b72.Td2a8ffserverTb4b4b4,
Te6edf3_pack_requestTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3argsTff7b72.Td2a8fftimeoutTb4b4b4,
Te6edf3reticulum_configTff7b72=Te6edf3argsTff7b72.Td2a8ffreticulum_configTb4b4b4,
Te6edf3statusTff7b72=Tff7b72lambda Te6edf3messageTb4b4b4: Te6edf3_statusTb4b4b4(Te6edf3messageTb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3excTb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError: transport_error: Tffd700{Te6edf3excTffd700}Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff1

Tff7b72if Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4:
Tffa657printTb4b4b4(Te6edf3jsonTff7b72.Td2a8ffdumpsTb4b4b4(Te6edf3responseTb4b4b4, Te6edf3indentTff7b72=T79c0ff2Tb4b4b4, Te6edf3sort_keysTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4)
Tff7b72return T79c0ff0

Tff7b72if Tff7b72not Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffokTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3_status_doneTb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ffError: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6fferrorTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffmessageTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff"Tb4b4b4,
Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4,
Tb4b4b4)
Tff7b72return T79c0ff1

Te6edf3_status_doneTb4b4b4(Ta5d6ff"Ta5d6ffPaste fetched.Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tffa657printTb4b4b4(Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffID:Ta5d6ff"Tb4b4b4, Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffTitle:Ta5d6ff"Tb4b4b4, Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffAuthor:Ta5d6ff"Tb4b4b4, Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffauthorTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffLanguage:Ta5d6ff"Tb4b4b4, Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6fflanguageTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffSigned:Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffyesTa5d6ff" Tff7b72if Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffsignedTa5d6ff"Tb4b4b4) Tff7b72else Ta5d6ff"Ta5d6ffnoTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffSigner ID:Ta5d6ff"Tb4b4b4, Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffsigner_idTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ffn/aTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ff---Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Tb4b4b4)
Te6edf3content Tff7b72= Te6edf3_render_contentTb4b4b4(
Tffa657strTb4b4b4(Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffcontentTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tffa657strTb4b4b4(Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6fflanguageTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tffa657printTb4b4b4(Te6edf3contentTb4b4b4, Te6edf3endTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4)
Tff7b72return T79c0ff0


Tff7b72def Td2a8ff_deleteTb4b4b4(Te6edf3argsTb4b4b4: Te6edf3argparseTff7b72.Td2a8ffNamespaceTb4b4b4) Tff7b72-Tff7b72> Tffa657intTb4b4b4:
Te6edf3request Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffversionTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4,
Ta5d6ff"Ta5d6ffopTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffdeleteTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4: Te6edf3argsTff7b72.Td2a8ffpaste_idTb4b4b4,
Ta5d6ff"Ta5d6ffdelete_tokenTa5d6ff"Tb4b4b4: Te6edf3argsTff7b72.Td2a8fftokenTb4b4b4,
Tb4b4b4}
Tff7b72tryTb4b4b4:
Te6edf3_statusTb4b4b4(Ta5d6ff"Ta5d6ffSending delete request...Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Te6edf3response Tff7b72= Te6edf3_unpack_responseTb4b4b4(
Te6edf3_send_requestTb4b4b4(
Te6edf3argsTff7b72.Td2a8ffserverTb4b4b4,
Te6edf3_pack_requestTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3argsTff7b72.Td2a8fftimeoutTb4b4b4,
Te6edf3reticulum_configTff7b72=Te6edf3argsTff7b72.Td2a8ffreticulum_configTb4b4b4,
Te6edf3statusTff7b72=Tff7b72lambda Te6edf3messageTb4b4b4: Te6edf3_statusTb4b4b4(Te6edf3messageTb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3excTb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError: transport_error: Tffd700{Te6edf3excTffd700}Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff1

Tff7b72if Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4:
Tffa657printTb4b4b4(Te6edf3jsonTff7b72.Td2a8ffdumpsTb4b4b4(Te6edf3responseTb4b4b4, Te6edf3indentTff7b72=T79c0ff2Tb4b4b4, Te6edf3sort_keysTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4)
Tff7b72return T79c0ff0

Tff7b72if Tff7b72not Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffokTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3_status_doneTb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ffError: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6fferrorTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffmessageTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff"Tb4b4b4,
Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4,
Tb4b4b4)
Tff7b72return T79c0ff1

Te6edf3_status_doneTb4b4b4(Ta5d6ff"Ta5d6ffPaste deleted.Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff0


Tff7b72def Td2a8ff_admin_deleteTb4b4b4(Te6edf3argsTb4b4b4: Te6edf3argparseTff7b72.Td2a8ffNamespaceTb4b4b4) Tff7b72-Tff7b72> Tffa657intTb4b4b4:
Te6edf3requestTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4] Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffversionTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4,
Ta5d6ff"Ta5d6ffopTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffadmin_deleteTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4: Te6edf3argsTff7b72.Td2a8ffpaste_idTb4b4b4,
Tb4b4b4}

Te6edf3identity_path Tff7b72= Te6edf3PathTb4b4b4(Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffexpanduserTb4b4b4(Tffa657strTb4b4b4(Te6edf3argsTff7b72.Td2a8ffidentityTb4b4b4)Tb4b4b4)Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3identity_pathTff7b72.Td2a8ffexistsTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError: identity_not_found: Tffd700{Te6edf3identity_pathTffd700}Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff1

Tff7b72tryTb4b4b4:
Te6edf3requestTff7b72.Td2a8ffupdateTb4b4b4(Te6edf3_sign_admin_delete_requestTb4b4b4(Te6edf3requestTb4b4b4, Te6edf3identity_pathTff7b72=Te6edf3identity_pathTb4b4b4)Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3excTb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError: sign_failed: Tffd700{Te6edf3excTffd700}Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff1

Tff7b72tryTb4b4b4:
Te6edf3_statusTb4b4b4(Ta5d6ff"Ta5d6ffSending admin delete request...Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Te6edf3response Tff7b72= Te6edf3_unpack_responseTb4b4b4(
Te6edf3_send_requestTb4b4b4(
Te6edf3argsTff7b72.Td2a8ffserverTb4b4b4,
Te6edf3_pack_requestTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3argsTff7b72.Td2a8fftimeoutTb4b4b4,
Te6edf3reticulum_configTff7b72=Te6edf3argsTff7b72.Td2a8ffreticulum_configTb4b4b4,
Te6edf3statusTff7b72=Tff7b72lambda Te6edf3messageTb4b4b4: Te6edf3_statusTb4b4b4(Te6edf3messageTb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3excTb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError: transport_error: Tffd700{Te6edf3excTffd700}Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff1

Tff7b72if Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4:
Tffa657printTb4b4b4(Te6edf3jsonTff7b72.Td2a8ffdumpsTb4b4b4(Te6edf3responseTb4b4b4, Te6edf3indentTff7b72=T79c0ff2Tb4b4b4, Te6edf3sort_keysTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4)
Tff7b72return T79c0ff0

Tff7b72if Tff7b72not Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffokTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3_status_doneTb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ffError: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6fferrorTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffmessageTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff"Tb4b4b4,
Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4,
Tb4b4b4)
Tff7b72return T79c0ff1

Te6edf3_status_doneTb4b4b4(Ta5d6ff"Ta5d6ffPaste deleted by admin.Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff0


Tff7b72def Td2a8ffbuild_parserTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Te6edf3argparseTff7b72.Td2a8ffArgumentParserTb4b4b4:
Te6edf3parser Tff7b72= Te6edf3argparseTff7b72.Td2a8ffArgumentParserTb4b4b4(Te6edf3progTff7b72=Ta5d6ff"Ta5d6ffrnpasteTa5d6ff"Tb4b4b4, Te6edf3descriptionTff7b72=Ta5d6ff"Ta5d6ffrnpaste CLITa5d6ff"Tb4b4b4)
Te6edf3parserTff7b72.Td2a8ffadd_argumentTb4b4b4(
Ta5d6ff"Ta5d6ff--reticulum-configTa5d6ff"Tb4b4b4,
Te6edf3defaultTff7b72=Tff7b72NoneTb4b4b4,
Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffReticulum config directory (optional)Ta5d6ff"Tb4b4b4,
Tb4b4b4)
Te6edf3parserTff7b72.Td2a8ffadd_argumentTb4b4b4(
Ta5d6ff"Ta5d6ff--timeoutTa5d6ff"Tb4b4b4,
Te6edf3defaultTff7b72=Tff7b72NoneTb4b4b4,
Tffa657typeTff7b72=Tffa657floatTb4b4b4,
Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffRequest timeout in seconds (defaults to unbounded)Ta5d6ff"Tb4b4b4,
Tb4b4b4)
Te6edf3sub Tff7b72= Te6edf3parserTff7b72.Td2a8ffadd_subparsersTb4b4b4(Te6edf3destTff7b72=Ta5d6ff"Ta5d6ffcommandTa5d6ff"Tb4b4b4, Te6edf3requiredTff7b72=Tff7b72TrueTb4b4b4)

Te6edf3submit Tff7b72= Te6edf3subTff7b72.Td2a8ffadd_parserTb4b4b4(Ta5d6ff"Ta5d6ffsubmitTa5d6ff"Tb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffSubmit a pasteTa5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6fffileTa5d6ff"Tb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffInput file path or - for stdinTa5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--serverTa5d6ff"Tb4b4b4, Te6edf3requiredTff7b72=Tff7b72TrueTb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffDestination hashTa5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--titleTa5d6ff"Tb4b4b4, Te6edf3defaultTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--authorTa5d6ff"Tb4b4b4, Te6edf3defaultTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--languageTa5d6ff"Tb4b4b4, Te6edf3defaultTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--visibilityTa5d6ff"Tb4b4b4, Te6edf3defaultTff7b72=Ta5d6ff"Ta5d6ffpublicTa5d6ff"Tb4b4b4, Te6edf3choicesTff7b72=Tb4b4b4[Ta5d6ff"Ta5d6ffpublicTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffunlistedTa5d6ff"Tb4b4b4]Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--expiresTa5d6ff"Tb4b4b4, Te6edf3defaultTff7b72=Tff7b72NoneTb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffExpiry duration, e.g. 1h, 1d, 7dTa5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--ttlTa5d6ff"Tb4b4b4, Te6edf3defaultTff7b72=Tff7b72NoneTb4b4b4, Te6edf3choicesTff7b72=Tb4b4b4[Ta5d6ff"Ta5d6ffquickTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdayTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffweekTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffmonthTa5d6ff"Tb4b4b4]Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--pinTa5d6ff"Tb4b4b4, Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffstore_trueTa5d6ff"Tb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffPin paste (never expires)Ta5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--signTa5d6ff"Tb4b4b4, Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffstore_trueTa5d6ff"Tb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffSign submit payload with Reticulum identityTa5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(
Ta5d6ff"Ta5d6ff--identityTa5d6ff"Tb4b4b4,
Te6edf3defaultTff7b72=Ta5d6ff"Ta5d6ff~/.rnpaste/identityTa5d6ff"Tb4b4b4,
Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffPath to Reticulum identity file used for --signTa5d6ff"Tb4b4b4,
Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--jsonTa5d6ff"Tb4b4b4, Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffstore_trueTa5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffset_defaultsTb4b4b4(Te6edf3funcTff7b72=Te6edf3_submitTb4b4b4)

Te6edf3get Tff7b72= Te6edf3subTff7b72.Td2a8ffadd_parserTb4b4b4(Ta5d6ff"Ta5d6ffgetTa5d6ff"Tb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffGet a paste by IDTa5d6ff"Tb4b4b4)
Te6edf3getTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ffpaste_idTa5d6ff"Tb4b4b4)
Te6edf3getTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--serverTa5d6ff"Tb4b4b4, Te6edf3requiredTff7b72=Tff7b72TrueTb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffDestination hashTa5d6ff"Tb4b4b4)
Te6edf3getTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--jsonTa5d6ff"Tb4b4b4, Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffstore_trueTa5d6ff"Tb4b4b4)
Te6edf3getTff7b72.Td2a8ffset_defaultsTb4b4b4(Te6edf3funcTff7b72=Te6edf3_getTb4b4b4)

Te6edf3delete Tff7b72= Te6edf3subTff7b72.Td2a8ffadd_parserTb4b4b4(Ta5d6ff"Ta5d6ffdeleteTa5d6ff"Tb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffDelete paste by ID and tokenTa5d6ff"Tb4b4b4)
Te6edf3deleteTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ffpaste_idTa5d6ff"Tb4b4b4)
Te6edf3deleteTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--serverTa5d6ff"Tb4b4b4, Te6edf3requiredTff7b72=Tff7b72TrueTb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffDestination hashTa5d6ff"Tb4b4b4)
Te6edf3deleteTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--tokenTa5d6ff"Tb4b4b4, Te6edf3requiredTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3deleteTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--jsonTa5d6ff"Tb4b4b4, Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffstore_trueTa5d6ff"Tb4b4b4)
Te6edf3deleteTff7b72.Td2a8ffset_defaultsTb4b4b4(Te6edf3funcTff7b72=Te6edf3_deleteTb4b4b4)

Te6edf3admin_delete Tff7b72= Te6edf3subTff7b72.Td2a8ffadd_parserTb4b4b4(Ta5d6ff"Ta5d6ffadmin-deleteTa5d6ff"Tb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffAdmin delete paste by ID using signed identityTa5d6ff"Tb4b4b4)
Te6edf3admin_deleteTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ffpaste_idTa5d6ff"Tb4b4b4)
Te6edf3admin_deleteTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--serverTa5d6ff"Tb4b4b4, Te6edf3requiredTff7b72=Tff7b72TrueTb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffDestination hashTa5d6ff"Tb4b4b4)
Te6edf3admin_deleteTff7b72.Td2a8ffadd_argumentTb4b4b4(
Ta5d6ff"Ta5d6ff--identityTa5d6ff"Tb4b4b4,
Te6edf3defaultTff7b72=Ta5d6ff"Ta5d6ff~/.rnpasted/identityTa5d6ff"Tb4b4b4,
Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffPath to Reticulum identity file used for admin signatureTa5d6ff"Tb4b4b4,
Tb4b4b4)
Te6edf3admin_deleteTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--jsonTa5d6ff"Tb4b4b4, Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffstore_trueTa5d6ff"Tb4b4b4)
Te6edf3admin_deleteTff7b72.Td2a8ffset_defaultsTb4b4b4(Te6edf3funcTff7b72=Te6edf3_admin_deleteTb4b4b4)

Tff7b72return Te6edf3parser


Tff7b72def Td2a8ffmainTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657intTb4b4b4:
Te6edf3parser Tff7b72= Te6edf3build_parserTb4b4b4(Tb4b4b4)
Te6edf3args Tff7b72= Te6edf3parserTff7b72.Td2a8ffparse_argsTb4b4b4(Tb4b4b4)
Tff7b72return Tffa657intTb4b4b4(Te6edf3argsTff7b72.Td2a8fffuncTb4b4b4(Te6edf3argsTb4b4b4)Tb4b4b4)


Tff7b72if Tff7b72__name__ Tff7b72== Ta5d6ff"Ta5d6ff__main__Ta5d6ff"Tb4b4b4: T8b949e# pragma: no cover
Tff7b72raise Tf85149SystemExitTb4b4b4(Te6edf3mainTb4b4b4(Tb4b4b4)Tb4b4b4)

Served by rngit 1.3.5 - Generated in 0.09s